The present application is directed to analysis and more particularly to model-based reasoning which employ dynamic domain abstraction. Of the many tools designers have at their disposal, abstraction is one of the most powerful. By abstracting from the detailed properties of a system, the complexity of the overall design task becomes manageable. For example, a computer engineer can focus on the logic level without concern for the properties of the individual transistors which make up a particular gate, and a chip designer can layout a chip without being concerned with the fabrication steps needed to construct it. Abstraction allow designers to partition concerns into independent black boxes, and is one of the most important ideas underlying the design of modern technology. An example of abstraction is illustrated in FIG. 1, which shows three different models of a NAND-gate, beginning with the traditional mosfet transistor level model at the bottom 10.
Then, assuming power can be ignored, and abstracting away from the specific subcomponents to the roles they play, an intermediate level representation 12 of the NAND-gate is developed. Employing two further simplifying assumptions—that current can be ignored and that all the subcomponents can be encompassed by a single box—yields the traditional NAND-gate symbolic representation 14. Thus, the noted assumptions yield two successively simpler models of the device.
Unfortunately, faults in a system need not obey the neat abstraction levels of the designer. For example, a fault in a few transistors can cause IC Pentium processor to generate an occasional incorrect floating point result. To understand this fault requires transcending the many abstraction levels between software and hardware. A PC designer can focus on functional layout without being concerned about the physical layout and its thermal properties. However, a technician must determine the processor crashed because dust sucked into the processor fan clogged the heatsink, and allowed the processor temperature to rise to such a dangerous level the PC automatically shut down. As a consequence diagnostic reasoning is inherently messy and complex, as it involves crossing abstraction boundaries rarely contemplated by the designers.
Model-based reasoning has addressed a number of types of abstraction, including range abstraction, where the ranges of variables are abstracted, e.g., instead of a continuous quantity variables are represented by the qualitative values of −, 0 or +. Another known abstraction type is structural abstraction, where groups of components are abstracted to form hierarchies, and a third abstraction type is called model selection, which teaches approaches to choose among a collection of hand-constructed models.
The above described abstraction techniques do not however discuss ways to dynamically alter an abstraction level or layer, in for example, a diagnostic system performing diagnostic operations.